【Pandas必看】数据处理进阶 您所在的位置:网站首页 python pandas删除某一行 【Pandas必看】数据处理进阶

【Pandas必看】数据处理进阶

2024-07-16 05:17| 来源: 网络整理| 查看: 265

数据处理进阶-使用Query方法高效查询并删除符合条件行/列 1. 使用`drop`方法删除指定行/列2.Pandas深度学习:Query方法查询数据(1)制作测试数据(2)使用`loc`方法查询(3)使用`iloc`方法查询(4) 使用`query`方法查询 3.`query`方法与`loc`、`iloc`方法的优势对比总结

      在数据分析和处理中,数据查询和删除是经常进行的操作。Pandas是一个功能强大的数据分析工具,提供了多种方法来实现高效的数据查询和删除。本文将介绍如何使用Pandas中的drop方法按条件删除数据行,并介绍query方法进行高效的数据查询。       Pandas中的drop方法可以方便地删除特定行或列的数据。下面是使用drop方法进行数据删除的示例:

1. 使用drop方法删除指定行/列

drop()方法是Pandas中常用的删除数据的方法。它有许多参数,具体如下:

DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=‘raise’) - labels:要删除的标签,一个或者多个(以list形式); - axis:指定哪一个轴,=0删除行,=1删除列; - columns:指定某一列或者多列(以list形式); - level:索引等级,针对多重索引的情况; - inplaces:是否替换原来的dataframe,=True代表直接替换原始df,=False代表不替换原始df

直接删除指定行/列

如果我们想删除DataFrame中的某一列,可以使用下面的代码:

# 删除名为'C'的列,并替换原始df df.drop(columns=['C'], inplace=True)

根据条件删除指定行

我们也可以删除某些指定的行。比如,我们想要删除分数在20到50之间的行:

# 删除符合条件的指定行,并替换原始df df.drop(df[(df.score 20)].index, inplace=True)

      以上示例中,第一个示例通过传入columns参数来删除指定的列,第二个示例通过传入条件表达式来删除符合条件的行。

2.Pandas深度学习:Query方法查询数据

      大多数Pandas用户都熟悉iloc[]和loc[]方法,用于从DataFrame中检索行和列。然而,随着检索数据的规则变得越来越复杂,使用这些方法的代码也变得越来越冗长。       为了更加高效地进行数据查询,Pandas提供了query方法。该方法可以通过类似SQL语句的方式进行数据查询,相比于iloc[]和loc[]方法更加简洁和直观。

(1)制作测试数据

首先,我们需要创建一些测试数据来演示这些技巧。下面是一个示例的DataFrame:

import pandas as pd df = pd.DataFrame({'num': [1, 2, 3], 'name': ['gao', 'li', 'bai'], 'age': [12, 18, 20]}) print(df)

输出结果如下:

num name age 0 1 gao 12 1 2 li 18 2 3 bai 20 (2)使用loc方法查询

loc方法主要通过指定行/列标签进行行数据查询。df.loc(行标签,列标签)

可以通过指定行标签来选择某一行的数据。例如:

行索引标签获取行数据

df.loc[1] # 选择行标签为1的一行数据

输出结果:

num 2 name li age 18 Name: 1, dtype: object

一定范围的行数据

df.loc[0:1] # 取第一行和第二行的数据(闭区间)

输出结果:

num name age 0 1 gao 12 1 2 li 18 df.loc[:,num:name] # 取第一列到第二列的数据(闭区间)

输出结果:

num name 0 1 gao 1 2 li 2 3 bai

读取一列数据

df.loc[ : ,"name"]输出结果:

name 0 gao 1 li 2 bai Name: name, dtype: object (3)使用iloc方法查询

与loc函数相反,iloc函数可以通过 行/列号 来获取行数据。df.loc(行号,列号)

读取一行数据

df.iloc[1] # 获取第二行的数据

输出结果:

num 2 name li age 18 Name: 1, dtype: object

读取一列数据

df.iloc[:1] # 获取第二列的数据

输出结果:

name 0 gao 1 li 2 bai

读取指定行列数据

df.iloc[1, 1]# 读取第二行,第二列的值

输出结果:

li

切片操作

# 按index和columns进行切片操作 df.iloc[1:3, 1:3] # 读取第2、3行,第2、3列

输出结果:

name age 1 li 18 2 bai 20 (4) 使用query方法查询

query方法可以根据条件表达式来查询数据,具有更加简洁的语法。类似于SQL的语法,可以高效地进行数据查询。该方法可以简化查询语句,提高代码的可读性和执行效率。

示例一:

df.query("age > 15") # 查询年龄大于15岁的数据

输出结果:

num name age 1 2 li 18 2 3 bai 20

示例二:

df = df[[col_1, col_2]] query_sql = col_1 + '< 0 or ' + col_2 + '< 0' df = df.drop(df.query(query_sql).index)

在上述示例中,我们首先选择需要查询的列,并将结果保存在新的DataFrame中。接下来,我们构建了一个查询字符串query_sql,表示col_1小于 0 或 col_2 小于 0 的条件。最后,我们使用query方法查询满足条件的行,并使用drop方法删除这些行。

3.query方法与loc、iloc方法的优势对比

相比于传统的loc和iloc方法,query方法具有简洁、直观的语法,更接近SQL查询语句的风

query方法具有以下优势:

简化了查询语句,减少了代码的复杂性和冗余。提供了类似 SQL 的语法,使查询条件更加直观。内部优化了查询算法,执行速度更快。

      在实际的数据处理工作中,合理使用drop和query方法可以提高数据处理的效率,同时使代码更加简洁易读。

总结

      在本篇博客中,我们介绍了使用Pandas的drop方法删除指定行或列,并演示了使用query方法进行高效查询的方法。通过合理运用这两种方法,我们可以提高数据处理的效率,简化代码,增强代码的可读性和可维护性。希望本篇博客对您在数据处理工作中有所帮助!如果有任何问题,请随时留言!如果本篇内容对您有帮助,还请给作者一键三连支持下~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有